# -*- coding:utf-8 -*-

import numpy as np
import cpca
import pymysql
import pandas as pd
from cpca import drawer

#连接数据库
dbpath = "poetry_information.db"
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='poetry_information', password='root', charset='utf8')
cursor = db.cursor()

#查询诗人总数
cursor.execute("SELECT * FROM poetry")
poetry_data=cursor.fetchall()

data=[]#存储每位诗人简介信息
for i in range(0,len(poetry_data)):#将每位诗人的出生地与数据库进行对应 （字符串匹配）
     data.append(poetry_data[i][3])

df = cpca.transform(data)
loc_array=np.array(df[['省','市']])  #dataframe转换为array
# 陆游（1125—1210），字务观，号放翁。汉族，越州山阴（今浙江绍兴）人，南宋著名诗人。少时受家庭爱国思想熏陶，高宗时应礼部试，为秦桧所黜。
# 孝宗时赐进士出身。中年入蜀，投身军旅生活，官至宝章阁待制。晚年退居家乡。创作诗歌今存九千多首，内容极为丰富。著有《剑南诗稿》、《渭南文集》、
# 《南唐书》、《老学庵笔记》等。► 陆游的诗文(7946篇)

# for i in range(0,len(loc_array)):#字符串
#      if ((loc_array[i][1] == None) or (loc_array[i][1]=='县')):  #特殊情况['重庆市' '县']
#           area_name = loc_array[i][0]
#      else:
#           area_name = loc_array[i][1]
#
#      cursor.execute('select code from area_code where area_name=\''+str(area_name)+'\';')
#      code=cursor.fetchone()
#      code_new=0
#      if(code):
#           code_new=code[0]
#      cursor.execute('update poetry set code=\'' + str(code_new) + '\' where id=' + str(i+1)+ ';')


processed = pd.concat([pd.DataFrame(data), pd.DataFrame(df)], axis=1)
drawer.echarts_cate_draw(adcodes=processed[cpca._ADCODE], labels=processed["省"],title="诗人地区分布图", file_path="echarts_cate.html")

# from pyecharts import Map
#
# province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '辽宁': 12, '江西': 6, '上海': 20, '安徽': 10,
#                          '江苏': 16, '湖南': 9, '浙江': 13, '海南': 2, '广东': 22, '湖北': 8, '黑龙江': 11, '澳门': 1,
#                          '陕西': 11, '四川': 7, '内蒙古': 3, '重庆': 3, '云南': 6, '贵州': 2, '吉林': 3, '山西': 12,
#                          '山东': 11, '福建': 4, '青海': 1, '天津': 1, '其他': 1}
# provice = list(province_distribution.keys())
# values = list(province_distribution.values())
# map = Map("中国地图", '中国地图', width=600, height=400)
# map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,
#         visual_text_color='#000')
# map.render(path="中国地图.html")


db.commit()
cursor.close()
db.close()